package com.hiultra.archive.mapper;

import com.hiultra.common.core.domain.entity.ArcShelves;

import java.util.List;
import java.util.Map;

/**
 * 密集架Mapper接口
 *
 * @author ls
 * @date 2022-07-28
 */
public interface ArcShelvesMapper {
    /**
     * 查询密集架
     *
     * @param shelvesId 密集架主键
     * @return 密集架
     */
    public ArcShelves selectArcShelvesByShelvesId(Long shelvesId);

    /**
     * 查询密集架列表
     *
     * @param arcShelves 密集架
     * @return 密集架集合
     */
    public List<ArcShelves> selectArcShelvesList(ArcShelves arcShelves);

    /**
     * 新增密集架
     *
     * @param arcShelves 密集架
     * @return 结果
     */
    public int insertArcShelves(ArcShelves arcShelves);

    /**
     * 修改密集架
     *
     * @param arcShelves 密集架
     * @return 结果
     */
    public int updateArcShelves(ArcShelves arcShelves);

    /**
     * 删除密集架
     *
     * @param shelvesId 密集架主键
     * @return 结果
     */
    public int deleteArcShelvesByShelvesId(Long shelvesId);

    /**
     * 批量删除密集架
     *
     * @param shelvesIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArcShelvesByShelvesIds(Long[] shelvesIds);


    /**
     * 伪删除根据Code
     */
    int delByCode(String shelvesCode);

    /**
     * 检查增加时是否存在
     *
     * @param arcShelves
     * @return 结果
     */
    ArcShelves checkInsert(ArcShelves arcShelves);

    /**
     * 查询本级最大编号
     */
    String selectMaxCode(Long parentId);

    /**
     * 验证是否满足修改条件
     *
     * @param arcShelves
     * @return 结果
     */
    ArcShelves checkUpdate(ArcShelves arcShelves);

    /**
     * 查询密集架列表-层
     *
     * @param arcShelves 密集架
     * @return 密集架集合
     */
    public List<ArcShelves> selectArcShelvesByLeve(ArcShelves arcShelves);


    /**
     * 多个删除密集架下级信息
     *
     * @param shelvesIds 密集架主键集合
     * @return 结果
     */
    public int deleteArcShelvesAllInfo(Long[] shelvesIds);

    /**
     * 删除密集架下级信息
     *
     * @param shelvesIds 密集架主键集合
     * @return 结果
     */
    public int deleteArcShelvesAllInfoOne(Long shelvesIds);

    /**
     *  根据密集架id查询名称
     */
    List<Map<String,Object>> selectShelvesName(Long shelvesId);
}
